package com.example.test.advice.第二章_基本类型.建议25_不要让四舍五入亏了一方;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class ApproachClient {

    public static void main(String[] args) {
        //存款
        BigDecimal d = new BigDecimal(888888);
        //月利率，乘3计算季利率
        BigDecimal r = new BigDecimal(0.001875*3);
        System.out.println("原始数字："+d.multiply(r));
        //计算利息
        System.out.println("向银行家算法-季度利息是："+d.multiply(r).setScale(2, RoundingMode.HALF_EVEN));
        //趋零方向舍入,所有位舍弃不存在进位
        System.out.println("向趋零方向舍入-季度利息是："+d.multiply(r).setScale(2, RoundingMode.DOWN));
        //远零方向舍入，只有舍弃位不为0即进位
        System.out.println("向远零方向舍入-季度利息是："+d.multiply(r).setScale(2, RoundingMode.UP));
        //正无穷方向舍入:正数类似于UP,负数类似于DOWN
        System.out.println("向正无穷方向舍入-季度利息是："+d.multiply(r).setScale(2, RoundingMode.CEILING));
        //负无穷方向舍入:正数类似于down，负数类似于up
        System.out.println("向负无穷方向舍入-季度利息是："+d.multiply(r).setScale(2, RoundingMode.FLOOR));
        //经典四舍五入
        System.out.println("最近数字舍入（5进）-季度利息是："+d.multiply(r).setScale(2, RoundingMode.HALF_UP));
        //五舍弃，六进位
        System.out.println("最近数字舍入（5舍）-季度利息是："+d.multiply(r).setScale(2, RoundingMode.HALF_DOWN));

    }
}
